package com.ruoyi.examation.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.examation.domain.ExamRegistrationUser;
import com.ruoyi.examation.domain.ExamSchedule;
import com.ruoyi.examation.vo.ExamScheduleVo;

import java.util.List;

/**
 * 考试时间安排Service接口
 *
 * @author Tellsea
 * @date 2025-10-10
 */
public interface IExamScheduleService extends IService<ExamSchedule> {

    /**
     * 分页查询
     *
     * @param entity
     * @return
     */
    TableDataInfo<ExamScheduleVo> queryList(ExamScheduleVo entity);

    /**
     * 查询全部
     *
     * @param entity
     * @return
     */
    List<ExamScheduleVo> queryAll(ExamScheduleVo entity);

    /**
     * 根据ID查询
     *
     * @param id
     * @return
     */
    ExamScheduleVo queryById(Long id);

    /**
     * 根据考试ID查询启用的考试时段并统计报名人数
     *
     * @param examId 考试ID
     * @return 考试时段列表（包含报名人数）
     */
    List<ExamScheduleVo> queryEnabledSchedulesWithRegistrationCount(Long examId);

    List<ExamRegistrationUser> getExamRegistrationList(Long examId);
}
